package com.szgz.platform.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.szgz.platform.model.UserEnvironment;

import java.util.List;

/**
 * 用户环境数据访问层
 */
@Mapper
public interface UserEnvironmentMapper extends BaseMapper<UserEnvironment> {
    
    /**
     * 根据用户ID查询环境
     */
    List<UserEnvironment> selectByUserId(@Param("userId") String userId);
    
    /**
     * 根据用户ID查询单个环境（取第一个）
     */
    default UserEnvironment selectByUserIdSingle(@Param("userId") String userId) {
        List<UserEnvironment> environments = selectByUserId(userId);
        return environments.isEmpty() ? null : environments.get(0);
    }
    
    /**
     * 根据环境ID查询环境
     */
    UserEnvironment selectByEnvironmentId(@Param("environmentId") String environmentId);
    
    /**
     * 根据状态查询环境
     */
    List<UserEnvironment> selectByStatus(@Param("status") String status);
    
    /**
     * 更新环境状态
     */
    int updateEnvironmentStatus(@Param("environmentId") String environmentId, @Param("status") String status);
    
    /**
     * 更新容器信息
     */
    int updateContainerInfo(@Param("environmentId") String environmentId, 
                           @Param("containerId") String containerId,
                           @Param("networkId") String networkId,
                           @Param("volumeId") String volumeId);
    
    /**
     * 根据用户ID删除环境
     */
    int deleteByUserId(@Param("userId") String userId);
} 